package com.rolerealm.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 角色基础信息实体
 * 
 * @author RoleRealm Team
 * @version 1.0.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("characters")
public class CharacterEntity {

    /**
     * 角色ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 角色名称
     */
    @TableField("name")
    private String name;

    /**
     * 角色描述
     */
    @TableField("description")
    private String description;

    /**
     * 角色背景介绍
     */
    @TableField("background")
    private String background;

    /**
     * 角色性格特征
     */
    @TableField("personality")
    private String personality;

    /**
     * 时代
     */
    @TableField("era")
    private String era;

    /**
     * 地区
     */
    @TableField("region")
    private String region;

    /**
     * 分类(历史人物/文学角色/虚拟角色)
     */
    @TableField("category")
    private String category;

    /**
     * 技能类型(qa/lang/creative)
     */
    @TableField("skill_type")
    private String skillType;

    /**
     * 头像URL
     */
    @TableField("avatar_url")
    private String avatarUrl;

    /**
     * 支持语言(zh/en)
     */
    @TableField("language")
    private String language;

    /**
     * 状态(1:启用 0:禁用)
     */
    @TableField("status")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField(value = "created_at", fill = FieldFill.INSERT)
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;

    /**
     * 逻辑删除(0:未删除 1:已删除)
     */
    @TableLogic
    @TableField("deleted")
    private Integer deleted;
}
